home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / UTILITY / ACD210.ARJ / ACD.DOC < prev    next >
Text File  |  1992-08-01  |  46KB  |  994 lines

  1. ┌──────────────────────────────────────────────────────────────────────────┐
  2. │Documentation of ACD version 2.10, dated Aug. 1, 1992     (c) A. Merckens │
  3. └──────────────────────────────────────────────────────────────────────────┘
  4.  
  5. First, before giving some documentation on ACD, I'll give some background
  6. information on WHY I created yet Another Change Directory program.
  7.  
  8. ┌─────────────────────────────┐
  9. │   What I liked about .....  │
  10. └─────────────────────────────┘
  11.  
  12. NCD [Norton Change Directory - (c) Peter Norton]
  13. ───
  14.     - first program that made "fast" changing directories possible
  15.     - nice best guess when pathname is incorrectly spelled
  16.     - possible to remove "current" directory [NCD RD .]
  17.     - `speed search' when window with directory information appears on screen
  18.     - possible to rename a directory
  19.  
  20. LCD [Led's Change Directory  - (c) Keith Ledbetter]
  21. ───
  22.     - directory information on more than one drive at a time
  23.     - change to correctly specified directory EVEN if not in directory
  24.       database
  25.     - fast
  26.  
  27. ┌─────────────────────────────┐
  28. │   What I disliked about ... │
  29. └─────────────────────────────┘
  30.  
  31. NCD
  32. ───
  33.     - only directory-information on one drive at a time
  34.     - directories are unsorted
  35.     - updates are unsorted [NCD MD dirname]
  36.     - messages that are driving me crazy when switching to a correctly
  37.       specified path [NCD d:\bin\dos40; I know, I know, I should have
  38.       specified NCD CD d:\bin\dos40]
  39.     - unwanted updates of directory-information when NCD encounters an unknown
  40.       directory
  41.     - cannot write directory-information for network-drives
  42.     - slow
  43.     - cannot rename a directory on a network drive
  44.  
  45.  
  46. LCD
  47. ───
  48.     - directories are unsorted
  49.     - updates are unsorted [LCD MD dirname], even worse than NCD
  50.     - pop-up window is too small when selecting from many directories
  51.     - not possible to remove "current" directory [LCD RD . ]
  52.     - not possible to explicitly give a drive name, e.g. LCD d:bi is not
  53.       allowed
  54.     - strange "BEST GUESS" when partial directory name could not be found
  55.     - not DV-aware
  56.     - if EGA/VGA 43/50 lines/page: on exit, the cursor is positioned at the
  57.       wrong line
  58.     - not possible to remove directory-information (locally), without actually
  59.       removing directories: when network drives are scanned, quite often users
  60.       have the same directory names (consider: UTILS); however, you may not be
  61.       interested in these, and wish to remove `useless' directory-information
  62.     - no `speed search' when pop-up window with directory information on screen
  63.       [Well, in version LCD 4.0 - 10 days after first release of ACD 1.00 -
  64.       Mr. Ledbetter implemented this in the same way as ACD....]
  65.  
  66.  
  67. So, I created Another Change Directory, which is, in my prejudiced opinion,
  68. the best of these two worlds.
  69.  
  70.  
  71. About the program ACD
  72.  
  73.    ACD is a program designed to have all the features I liked in LCD and NCD,
  74. and also to have the features I thought were missing in these programs. Just
  75. like LCD, ACD makes changing directories much easier, especially when you have
  76. a large harddisk with lots of different partitions or are hooked on a network
  77. drive.
  78.  
  79.    ACD works "across all drives" by maintaining the directory database of ALL
  80. drives in the file C:\ACD.IDX (by default). This means that you don't have to
  81. specify a drive letter when changing to a directory on a different drive.
  82. However, you are allowed to specify the drive letter which will be used
  83. to consider only the directories on the drive specified.
  84.  
  85.  
  86. The syntax:
  87.  
  88.    ACD [drive:]partial_dir[\][options]: change to a directory or present
  89.                                         selection
  90.    ACD =[drive:]partial_dir       : use scrollback history to change directory
  91.    ACD rd directory_name          : delete directory; update database
  92.    ACD md directory_name          : create directory; update database
  93.    ACD rd directory_name /local   : delete directory-information recursively
  94.                                     below directory_name from database; do not
  95.                                     actually delete directories
  96.    ACD md directory_name /local   : create directory-information; do not
  97.                                     actually create directory
  98.    ACD ren dir1 dir2              : rename dir1 to dir2; update database
  99.    ACD /create  <drivelist>       : scan drives and create directory database
  100.    ACD /qcreate <drivelist>       : scan drives (ignore dirs with extensions)
  101.                                     and create directory database
  102.    ACD /add     <drivelist>       : scan drives and add to directory database;
  103.                                     existing info on a drive will be replaced
  104.    ACD /qadd    <drivelist>       : scan drives (ignore dirs with extensions)
  105.                                     and add to directory database
  106.    ACD /recreate                  : rescan the drives which are mentioned in
  107.                                     the directory database
  108.    ACD /qrecreate                 : rescan drives which are mentioned in the
  109.                                     directory database (ignore dirs with
  110.                                     extensions)
  111.    ACD /?, or ACD /h              : short help
  112.  
  113.   Options:
  114.      /c[x] , x = 0..1             : select Current drive [toggle]
  115.      /e[x] , x = 0..1             : Exact match [toggle]: switch to directory
  116.                                     if exactly one directory name is found in
  117.                                     the ACD database with this exact name.
  118.      /i[x] , x = 0..1             : test Inactive drives [toggle]
  119.      /g[x] , x = 0..1             : Graphical display of paths [toggle]
  120.      /l[x] , x = 0..1             : highlight selection Line [toggle]
  121.      /m[x] , x = 0..1             : show Menu with choices [toggle]
  122.      /s[x] , x = 0..1             : Shrink speedstring [toggle]: ACD does not
  123.                                     try to guess what is meant if no match:
  124.                                     step 3. in the appendix is skipped
  125.      /u[x] , x = 0..4             : How to act when Unknown directories are
  126.                                     encountered. [toggle between 5 values, see
  127.                                     below]
  128.      /0[x] , x = 0..2             : default commandline (0 pars) [toggle
  129.                                     between '*', '=' and empty]
  130.  
  131.  
  132. These switches can also be set without toggling, by adding a digit, say [x]; 0
  133. means OFF, 1 means ON. E.g. the /c toggle can be set to be ON by /c1,
  134. independent of the previous value. In the case of the /0 option, /00 means
  135. empty /01 means '*' and /02 means '='
  136.  
  137. The /u[x] option will change ACD's behaviour when ACD encounters an Unknown
  138. directory:
  139.       0: (/u0) do not add unknown directories to ACD-database
  140.       1: (/u1) add when parent is in the ACD-database
  141.       2: (/u2) add when parent is in the ACD-database, and add also all
  142.          subdirectories.
  143.       3: (/u3) if parent is NOT in the ACD-database, go back until parent IS
  144.          in the ACD-database; add all unknown directories starting from this
  145.          directory.
  146.       4: (/u4) rescan complete drive (of course, only if information on this
  147.          drive is in the ACD-database)
  148.  
  149.  
  150. Changing directories:
  151.  
  152.    ACD is used to switch quickly between directories across any drive. You
  153.    simply invoke ACD and give it the full or partial name of the directory you
  154.    wish to change to. For example, if you have a directory named D:\COMM\KERMIT
  155.    you could switch to this directory with the command:
  156.  
  157.        C:\> ACD ker
  158.  
  159.    ACD will first try to do an immediate change to the directory name that you
  160.    specify. If that change works, ACD simply exits immediately. If it fails,
  161.    then ACD looks into your directory database and tries to figure out the
  162.    directory name that you wanted. If more than one directory existed with the
  163.    same partial name that you gave to ACD, it will display a pop-up window on
  164.    the screen containing all of the matches found. Simply use the movement
  165.    keys (PgUp, PgDn, Home, End, Arrow keys) to highlight the directory that you
  166.    want to change to, then hit <Enter>.
  167.  
  168.    If the `current directory' is included in the partial match set, the
  169.    highlight is positioned on this directory (sort of like "you are here"),
  170.    otherwise, the highlight is positioned on the first match.
  171.  
  172.    Within the pop-up window, a `speed search' is available, i.e. when you
  173.    press a key which doesn't have a special function (see below), then the
  174.    character is added to the `partial name' you entered at the command-line,
  175.    the pop-up window will possibly resized and the new selections will be
  176.    shown if more than one directory exists with the same partial name: as soon
  177.    as exactly one directory is selected by speed search, the directory will be
  178.    selected without further confirmation.
  179.  
  180.    By pressing * the method of partial name search is toggled. Normally, ACD
  181.    matches the partial name at the start of the last part of the directory.
  182.    When pressing * once, it will match the partial name anywhere in the last
  183.    part of the directory (see example below). If you press * again, the first
  184.    method is used again.
  185.    If you press \, then all subdirectories of the current selection are shown
  186.    as well; if you press \ again, the previous state is restored.
  187.  
  188.    If you press ESC, the operation will be aborted.
  189.    The + key makes the highlighted line point to the next drive in the
  190.    selection window, and the Tab or ArrowRight makes the highlighted line
  191.    point to the next directory with the same parent as the currently
  192.    highlighted line. If you press the Ctrl-key and the Arrow-Left key
  193.    simultaneously, then the highlight will go to the parent of the currently
  194.    highlighted path.
  195.    By pressing ALT-C simultaneously, the highlighted path will be centered on
  196.    the screen, allowing you to see the directories above and below the
  197.    highlighted path. By pressing ALT-T simultaneously, the highlighted path
  198.    will be put on top of the screen.
  199.  
  200.    Summary on the action of keys when in pop-up window:
  201.  
  202.    Note: sibling means entry with the same `parent'
  203.  
  204.        F1             : gives help on the special keys
  205.        Pg-Up          : go to top of page, or go one page up
  206.        Pg-Dn          : go to bottom of page, or go one page down
  207.        End            : go to last entry
  208.        Home           : go to first entry
  209.        Arrow-Up       : go to previous entry
  210.        Arrow-Dn       : go to next entry
  211.        Tab            : go to next sibling
  212.        Shift Arrow-Up : go to next sibling
  213.        BackTab        : go to previous sibling
  214.        Shift Arrow-Dn : go to previous sibling
  215.        Arrow-Left     : go to `parent' of currently highlighted path
  216.        Ctrl Arrow-Left: go to `parent' of currently highlighted path
  217.        ALT-C          : Center highlighted path in popup-window
  218.        ALT-E          : Execute External program: see patch 13 for details.
  219.        ALT-G          : toggle Graphic display
  220.        ALT-L          : toggle method of highlighting current selection; the
  221.                         whole Line is highlighted, or only the last
  222.                         subdirectory
  223.        ALT-M          : Make new directory in highlighted path
  224.        ALT-N          : reName highlighted directory
  225.        ALT-P          : Print current selections to printer or file
  226.        ALT-R          : Remove highlighted directory tree (locally)
  227.        Alt-S          : Scan highlighted directory for missing info
  228.        ALT-T          : put highlighted path on Top of popup-window
  229.        +              : go to first entry of next drive
  230.        *              : toggle search method
  231.        =              : toggle scrollback history
  232.        \ or /         : toggle display of all subdirectories of current
  233.                         selection
  234.        :              : toggle drive selection: all drives/highlighted
  235.        Enter          : switch to highlighted entry
  236.        A..Z           : when the path's are preceded by capital characters,
  237.                         then these can be chosen to select a directory (see
  238.                         the /m option how to disable this menu)
  239.        Esc            : abort operation
  240.        BS, Del        : delete character from partial name for `speed search'
  241.        other char.    : add character to partial name for `speed search';
  242.                         '?' has the common wildcard meaning
  243.  
  244.  
  245.    Example:
  246.  
  247.        C:\> ACD do
  248.  
  249.    If this selects more than one directory, a pop-up window will be shown on
  250.    the screen:
  251.  
  252.    ┌───╥─────────────────────────────[F1 help]────────────────[1/2]────────┐
  253.    │ A ║ c:\bin\dos40                                                      │
  254.    │ B ║ d:\doreen                                                         │
  255.    └───╨──────────────────────────────────────────────────────[do        ]─┘
  256.  
  257.    In this case, two directories are selected. By using the arrow-keys and the
  258.    <Enter>, or by pressing the next character (r or s), or by pressing a menu
  259.    choice (the capital characters A or B), a selection can be made.
  260.  
  261.    By pressing the *, you will `toggle' the method of string-searching, and
  262.    you'll get a pop-up window equal to the command:
  263.  
  264.         ACD *do
  265.  
  266.    So, for example:
  267.  
  268.    ┌───╥─────────────────────────────[F1 help]────────────────[1/4]────────┐
  269.    │ A ║ c:\4dos                                                           │
  270.    │ B ║ └─ bin\dos40                                                      │
  271.    │ C ║ d:\doreen                                                         │
  272.    │ D ║ g:\utils\seldom                                                   │
  273.    └───╨──────────────────────────────────────────────────── *[do        ]─┘
  274.  
  275.    By entering * again, the first screen will be shown again.
  276.    When you press \, you may get the following screen:
  277.  
  278.    ┌───╥─────────────────────────────[F1 help]────────────────[1/6]────────┐
  279.    │ A ║ c:\4dos                                                           │
  280.    │ B ║ └─ bin\dos40                                                      │
  281.    │ C ║ d:\doreen                                                         │
  282.    │ D ║ ├──────── goodies                                                 │
  283.    │ E ║ └──────── oldies                                                  │
  284.    │ F ║ g:\utils\seldom                                                   │
  285.    └───╨──────────────────────────────────────────────────── *[do*\      ]─┘
  286.  
  287.    This is the so called "graphic" presentation; if you press ALT-G, you will
  288.    get the following screen:
  289.  
  290.    ┌───╥─────────────────────────────[F1 help]────────────────[1/6]────────┐
  291.    │ A ║ c:\4dos                                                           │
  292.    │ B ║ c:\bin\dos40                                                      │
  293.    │ C ║ d:\doreen                                                         │
  294.    │ D ║ d:\doreen\goodies                                                 │
  295.    │ E ║ d:\doreen\oldies                                                  │
  296.    │ F ║ g:\utils\seldom                                                   │
  297.    └───╨──────────────────────────────────────────────────── *[do*\      ]─┘
  298.  
  299.    If you prefer the non-graphic presentation, you may add the /g switch, or
  300.    use a patch (described below), or use the /g switch in the environment
  301.    variable ACD, or configure ACD with ACD_CFG.
  302.    By entering \ again, you will get the selection screen with 4 matches
  303.    again. You can specify from the commandline which search method has to be
  304.    used, and/or if all subdirectories of the selection have to be shown by
  305.    starting with a star ("*") and ending with a backslash ("\"), for example:
  306.  
  307.            ACD *do\
  308.  
  309.    will yield the previous screen directly from the commandline.
  310.    Note that as soon as exactly one directory is selected by Speed Search, the
  311.    directory is selected, without further confirmation.
  312.  
  313.    By default the last subdirectory of the path that indicates the current
  314.    selection is highlighted; if you want the whole line highlighted, you can
  315.    add the /l option to ACD, or press ALT-L in the pop-up window.
  316.  
  317.    By default, all drives that are mentioned in the pop-up window are tested
  318.    for their existence. This ensures that only directory information of the
  319.    active drives is displayed. If you don't like this, or if testing your
  320.    drives is S L O W then you may add the /i option. ACD will then display
  321.    also the information of the (possibly) non-active drives. If you would like
  322.    to make this the default, then you could configure (=patch) ACD using
  323.    ACD_CFG, or use the environment variable ACD.
  324.  
  325.    If you KNOW you wish to change to a directory on the default drive, you
  326.    may specify
  327.  
  328.        ACD dir /c
  329.  
  330.    which will only show you the matching directories on the current drive; If
  331.    you KNOW you wish to change to a directory on the G-drive (for example),
  332.    then you may specify
  333.  
  334.        ACD G:dir
  335.  
  336.    which will only show the matching directories on the G-drive. If a
  337.    selection is shown, and you change your mind about the drive specification,
  338.    then you may press : which will result in showing the matching directories
  339.    based on all drives, as if you did not include G: or the /c option from the
  340.    command-line.
  341.    Note that if G: is a substed drive or a network drive equal to, say, F:,
  342.    then the information on drive F is used to display the paths in G:
  343.  
  344.  
  345. Scrollback history:
  346.  
  347.    Each time you change to a directory using ACD and using information in the
  348.    ACD-database, information is written to the ACD-database to remember the
  349.    directory you just changed to. By default the scrollback history will
  350.    remember up to 20 directories. Since ACD now writes each time it is used to
  351.    change to a directory, the performance on a XT might be slow. If you don't
  352.    want to use the scrollback history function for this or another reason, you
  353.    may change the history size to zero. You can use ACD_CFG to make this
  354.    patch.
  355.    When you changed to a few directories and wish to return to one of them,
  356.    you may enter:
  357.  
  358.         ACD =
  359.  
  360.    Now a pop-up window will appear which will show the directories you have
  361.    changed to.
  362.    Once again, you can use speedsearch or the keys mentioned above to make a
  363.    selection. You may also call speedsearch from the commandline, by
  364.    specifying, for example:
  365.  
  366.         ACD =do
  367.  
  368.    which will present a partial match set using ONLY the last "historysize"
  369.    (default: 20) directories you changed to. The first entry on screen is the
  370.    last directory you changed to, etc.
  371.  
  372.    You can also toggle easily between two directories by entering
  373.  
  374.         ACD ==
  375.  
  376.    which will let you jump directly to the second directory in the history
  377.    list: the directory you just came from. You can also jump to the third
  378.    directory in the history list directly by entering:
  379.  
  380.         ACD =3
  381.  
  382.    or in general to the "number"th directory in the history list.
  383.  
  384.         ACD ="number"
  385.  
  386.    However, if, for example, the directory 4DOS is in the history list, and
  387.    you enter
  388.  
  389.         ACD =4
  390.  
  391.    then the directory 4DOS is selected, and not the fourth directory in the
  392.    history list.
  393.  
  394.    The scrollback history is destroyed when you enter CD /add [drive], or CD
  395.    /[re]create [drive]. This shortcoming can be used as a feature: to clear
  396.    the history just add a non-existing drive, for example:
  397.  
  398.         ACD /add @
  399.  
  400.    Note that if you change to a directory directly - i.e. ACD does not have to
  401.    use information from its database - ACD does not add information to the
  402.    scrollback history. So, for example, if the directory C:\DOS40 exists, and
  403.    you enter:
  404.  
  405.         ACD C:\DOS40
  406.  
  407.    then this information is not added to the scrollback history. However, in
  408.    this case, if you would have entered
  409.  
  410.         ACD DOS
  411.  
  412.  
  413.    and selected C:\DOS40, then the information WOULD be added.
  414.  
  415.  
  416. Scanning directories:
  417.  
  418.    The first time you execute ACD, you must specify the /CREATE parameter
  419.    ("ACD /create") which instructs ACD to scan all of your hard drives and
  420.    create a file called ACD.IDX in the root directory of drive C. Depending on
  421.    how you will create/remove your directories in the near future, it may be
  422.    necessary to periodically rescan your drives.
  423.  
  424.    If you only want ACD to know about certain specific drives (for example:
  425.    only non-network drives), you can specify a drive list after the /CREATE
  426.    keyword. To have ACD only scan drives C, E, and G, just enter:
  427.  
  428.        C:\> ACD /CREATE CEG
  429.  
  430.    If at any stage, you wish to add information about another drive, say drive
  431.    F, then you could enter:
  432.  
  433.        C:\> ACD /ADD F
  434.  
  435.    If you are sure that you don't have subdirectories which have an extension
  436.    in their name (for example, C:\PROGRAMS.OLD\) then you can specify
  437.    /QCREATE, (/QADD), instead of /CREATE (/ADD).  This causes ACD to scan
  438.    approximately 33% quicker than without the Q.
  439.  
  440.    From version 1.03: if you ADD a drive for which already information is
  441.    stored in the directory database, this information will be replaced by new
  442.    information at the end of the information database, so no redundant
  443.    information will be stored.
  444.  
  445.    From version 2.10: if you are using DOS 3.0 or higher, then ACD will not
  446.    include SUBSTed or ASSIGNed drive information, or include network mappings
  447.    which have already been included in ACD.IDX, unless explicitly entered,
  448.    because ACD can deduce it from the "real" drive; e.g. if you have defined
  449.    E: with the DOS-command
  450.  
  451.            SUBST E: C:\SOURCES
  452.  
  453.    then drive E: will not be scanned with a
  454.  
  455.            ACD /CREATE
  456.  
  457.    Information on the C: drive will be stored in this case and the SUBSTed E:
  458.    drive won't be stored. However, if you enter:
  459.  
  460.            ACD E:PAS
  461.  
  462.    then ACD searches for a match using the information it has on the
  463.    subdirectories of C:\SOURCES.
  464.    The main advantages of this method is, that if you create a directory
  465.    C:\SOURCES\ARCHIVE, then the database will be directly up to date.
  466.    Furthermore, even if you use a different E: drive SUBSTitution, the
  467.    information is directly updated. A disadvantage might be, that by default
  468.    only the original directory-names will be taken into account when
  469.    searching for a match (in this case C:) are shown, unless you add the /C
  470.    switch, or explicitly add <drive:>.
  471.    Of course, you can still use the "old" method (i.e. the method use by ACD
  472.    version <=2.01), by entering
  473.  
  474.           ACD /CREATE CE
  475.  
  476.    You can also recreate the update ALL information in the ACD.IDX file by
  477.    entering
  478.  
  479.           ACD /RECREATE
  480.  
  481.    The drives mentioned in the ACD.IDX file will then be scanned again.
  482.  
  483. Direct database updating:
  484.  
  485.    You can also use ACD to create, remove and rename directories with
  486.    immediate database updating. This means that you don't have to rescan your
  487.    drives to update the directory database. ACD will create, delete or rename
  488.    the directory specified, and then update the ACD.IDX database at the same
  489.    time. For example, to create a directory on drive F: and put that directory
  490.    in the database, you'd do:
  491.  
  492.        C:\> ACD md f:\temp
  493.  
  494.    This ability comes in especially handy for users of command shells that
  495.    allow aliasing, such as CED and 4DOS. With these utilities, you can change
  496.    the standard MD and RD commands to invoke ACD instead. With 4DOS, you could
  497.    set up the aliases like below in a file called, say, C:\ALIASES
  498.  
  499.        md ACD md %&
  500.        mkdir md
  501.        rd ACD rd %&
  502.        rmdir rd
  503.        cd ACD %&
  504.        rendir ACD ren %&
  505.        ACD <drive:\dir>ACD.EXE
  506.  
  507.    Now you can give in 4DOS the command (or add to your AUTOEXEC.bat)
  508.  
  509.        alias /r c:\aliases
  510.  
  511.    Note: the last line - ACD <drive:\dir>ACD.EXE - is not necessary if ACD.EXE
  512.    is in your search PATH; however, a program which has just a simple task -
  513.    in this case `change directory' - executes much faster if the PATH does not
  514.    have to be searched.
  515.    Another suggestion: if you have defined an alias for CD and wish to change
  516.    to the previous directory, enter CD.. (without space) instead of CD ..
  517.    (with space), since in the first case ACD will not be called to execute
  518.    this very simple task and consequently no loading of the program has to
  519.    take place, and thus changing to the previous directory will go faster
  520.    (especially noticeable on an XT), with less typing.
  521.  
  522.    When the pop-up window is on screen, you can also use the ALT-R combination
  523.    to remove the highlighted path by answering the question
  524.  
  525.      "REMOVE <subdirspecification> (L/Y/N)"
  526.  
  527.    with Y(es).
  528.  
  529.    Furthermore you can also Make or reName a directory when the pop-up window
  530.    is on screen by pressing ALT-M and ALT-N respectively. When ALT-S is
  531.    pressed, the highlighted directory will be (recursively) scanned for
  532.    directories.
  533.  
  534. Local database updating:
  535.  
  536.    You can also use ACD to create and remove directory information only by
  537.    using the /local switch. ACD will NOT create or delete the directory
  538.    specified, but only update the ACD.IDX database.
  539.    For example, to remove the information on a directory and its
  540.    subdirectories on drive G:
  541.  
  542.        C:\> ACD rd G:\users\mally /local
  543.  
  544.    Then all information about g:\users\mally is deleted from the database, and
  545.    all of its subdirectories. This is especially handy for users of network
  546.    drives, who do not want this information in their database. You can also
  547.    use the ALT-R combination in the pop-up window to remove the highlighted
  548.    path and all of its subdirectories locally, by answering the question
  549.  
  550.         "REMOVE <subdirspecification> (L/Y/N)"
  551.  
  552.    with L(ocal).
  553.  
  554.    Also, you can add local directory information to the database. Eg. if the
  555.    directory c:\bin\testcase is missing in the database info, and you wish to
  556.    include it, you can update the database with this database information
  557.    without rescanning:
  558.  
  559.        C:\> ACD md c:\bin\testcase /local
  560.  
  561.    Note however that in order for ACD to update the database, the directory
  562.    c:\bin (the parent) should exist.
  563.    Probably an easier method is to call ACD, highlight the C:\BIN directory
  564.    and press ALT-S: missing drive information will be added.
  565.  
  566.  
  567. Renaming directories:
  568.  
  569.    You can also use ACD to give a directory another name. ACD will directly
  570.    rename the directory and update the ACD-database. Directories can only be
  571.    renamed if the parents of the directory to be renamed are the same as the
  572.    parents of the new directory specification. For example:
  573.  
  574.        ACD ren c:\bin\dos c:\bin\olddos
  575.  
  576.    is allowed, whereas
  577.  
  578.        ACD ren c:\bin\dos c:\olddos
  579.  
  580.    is not allowed, since they have different parents. You can also rename the
  581.    current directory by specifying
  582.  
  583.        ACD ren . olddos
  584.  
  585.    You can also use the ALT-N key combination in the popup window.
  586.  
  587. Printing a tree:
  588.  
  589.   When you have a selection of the ACD database on screen you can print this
  590.   selection to a file or to a printer by pressing ALT-P. This question will
  591.   appear on screen:
  592.  
  593.        Print tree to: prn....................................
  594.  
  595.   You can fill in a filename or PRN (or LPT1/LPT2) for the printer. The output
  596.   on file/printer will depend on the current selections you have made:
  597.   graphical display of the paths or not, partial match or not, scrollback
  598.   history or not, etc.
  599.  
  600.  
  601. The ACD and ACD_color environment variables
  602.  
  603.    If you'd rather have ACD keep its ACD.IDX database another place than the
  604.    root directory of drive C:, you can specify the filename you want in the
  605.    environment variable named ACD. For example, if you'd like to keep the
  606.    ACD.IDX file on drive D: in your UTILS directory, you would put
  607.  
  608.        SET ACD=D:\UTILS\ACD.IDX
  609.  
  610.    in your AUTOEXEC.BAT file.
  611.  
  612.    Furthermore, you can add the options to the environment variable: for
  613.    example:
  614.  
  615.       SET ACD=/c/0
  616.  
  617.    would set the default options to "current drive", and if the commandline
  618.    (except for options) is empty, the default commandline will be '*'. Of
  619.    course both options and a different path for the ACD.IDX can be specified
  620.    in this environment variable.
  621.    Note that the switches are real toggles, that is, if you have defined the
  622.    ACD environment variable as above, then by calling ACD /c all the drives
  623.    will be considered again. You may toggle as much as you like...
  624.    From version 2.10 you can overrule the toggling by adding a digit to the
  625.    switches, e.g. /c1. Then the fixed value 1 (=ON) will be used.
  626.    You can also use ACD_CFG to set your preferred defaults.
  627.  
  628.    You can change the colors of the pop-up window. You do this by setting an
  629.    environment variable named "ACD_COLOR", or use ACD_CFG to make permanent
  630.    changes.
  631.  
  632.    Set ACD_Color = backgroundcolor foregroundcolor
  633.  
  634.    The colors can be chosen from the table below (default is: 0 7)
  635.  
  636.           Dark Colors   ║
  637.          (Foreground &  ║  Light Colors
  638.           Background)   ║  (Foreground)
  639.         ═══════════╤════╬══════════════╤════
  640.          Black     │ 0  ║ DarkGray     │  8
  641.          Blue      │ 1  ║ LightBlue    │  9
  642.          Green     │ 2  ║ LightGreen   │ 10
  643.          Cyan      │ 3  ║ LightCyan    │ 11
  644.          Red       │ 4  ║ LightRed     │ 12
  645.          Magenta   │ 5  ║ LightMagenta │ 13
  646.          Brown     │ 6  ║ Yellow       │ 14
  647.          LightGray │ 7  ║ White        │ 15
  648.  
  649.    Example:
  650.  
  651.        Set ACD_Color = 2 4
  652.  
  653.    Would give you red characters in a green window. The default, lightgray
  654.    characters on black background works nicely on a monochrome monitor.
  655.    NOTE: Since version 2.10 you can also use the configuration utility ACD_CFG
  656.    to set the colors you prefer, and also all switches.
  657.  
  658.  
  659. Some more examples:
  660.  
  661.    ACD rd .        : Remove current directory.
  662.    ACD rd . /local : Remove information only on current directory.
  663.    ACD cd ....     : Just like in 4DOS: go 3 directories back.
  664.    ACD d:*         : Show all paths in the database on drive D.
  665.    ACD s*          : Find all paths that start with s; equal to ACD s.
  666.    ACD s\          : Find all paths that start with s and show all its
  667.                      subdirectories.
  668.    ACD *in         : Find all paths that have the word "in" in them.
  669.    ACD *           : Show all paths in the database.
  670.    ACD **          : Show all paths in the database, and use different Speed
  671.                      Search method.
  672.    ACD =s          : Find all paths in the scrollback history that start with
  673.                      an s.
  674.    ACD /qrecreate  : Create a new ACD.IDX, using information on the drives
  675.                      named in the current ACD.IDX file and use the fast
  676.                      method.
  677.  
  678.  
  679. Patches:
  680.  
  681.   All patches can now be made with the confiration program ACD_CFG.
  682.  
  683.   Call:
  684.  
  685.        ACD_CFG
  686.  
  687.   This program searches the current directory and the PATH for ACD.EXE.
  688.   A configuration menu appears on the screen; please read the information on
  689.   the switches to understand the meaning of all possible patches.
  690.   See PATCH.DOC and/or the *.P22 files for oldfashioned configuration.
  691.  
  692.  
  693. Appendix - Limitations and other features:
  694.  
  695.  . The ACD-database can have a maximum size of approximately 64K bytes. One
  696.    directory entry takes room for at least 5 bytes, and at most 16 bytes. If
  697.    we assume that the mean value is about 9 bytes (i.e. on average the length
  698.    of a directory-name is 5 characters), then about 7300 directories can be
  699.    stored.
  700.  
  701.  . If you have more than 64K-32 bytes of directory information, ACD will abort
  702.    and save the ACD-database up to that point.
  703.  
  704.  . ACD is still rather primitive on wildcards: it acts almost like plain DOS.
  705.    ACD only understands the asterisk ('*' - multiple characters match) on the
  706.    first or last position and the questionmark ('?' - one character match) on
  707.    any position.
  708.  
  709.  . ACD is DesqView aware. If DesqView is active, then for simple screen
  710.    writes, it uses the BIOS and for intensive screenwrites, it uses the
  711.    Virtual Screen Buffer of DV. Furthermore, - more important - the pop-up
  712.    window correctly pops-down, i.e. the DV-screen is correctly restored.
  713.  
  714.  . The directories will be presented alphabetically sorted, where the drive
  715.    order is dependent on how you created the ACD-database. If you
  716.  
  717.        ACD /CREATE DCF
  718.  
  719.    then first the matching files on drive D will be listed, then the ones on
  720.    drive C and then on drive F. Note that this is a feature.
  721.  
  722.  . When drives do not exist anymore, for example when the network is not
  723.    loaded, the directories of these invalid drives are excluded from the
  724.    partial match list, except if the /i option is set OFF.
  725.  
  726.  . Because of its database format, ACD cannot store a child directory in the
  727.    database if its parent is not there. Some people may regard this as a
  728.    feature, others as a limitation. For example, if you do this (with no
  729.    `aliases' on MD):
  730.  
  731.        ACD rd C:\Useless /local
  732.        ACD md C:\Useless\Junk
  733.  
  734.    ACD will create the directory "Junk", but it will not store the name in the
  735.    database, except if the /u switch value is larger than 2. You won't be
  736.    notified; the reason for this is that I don't like to be notified all the
  737.    time.
  738.  
  739.  . You might want to check all the patches you have made. By entering ACD /?
  740.    you get a help screen where the switches are indicated by OFF (0) or ON (1).
  741.  
  742.  . Note that starting from version 2.00 all switches can be set by the
  743.    environment variable ACD; from version 2.10 all preferred values can be
  744.    configured by using ACD_CFG.
  745.  
  746.  . ACD returns detailed ERRORLEVEL conditions, which can be useful if ACD is
  747.    invoked from batch files.  The errorlevels are (NOTE: they have changed in
  748.    version 2.10!)
  749.  
  750.               0  :   ACD was successful
  751.               1  :   No parameters on commandline
  752.               2  :   Unknown command
  753.               3  :   Unable to change to directory (directory not found)
  754.               4  :   ACD-database is full; partial directory-info saved
  755.               5  :   Unable to create directory
  756.               6  :   Unable to remove directory
  757.               7  :   Escape pressed
  758.               8  :   ACD-database is corrupted
  759.               9  :   Error opening ACD-database
  760.              10  :   Error reading ACD-database
  761.              11  :   Error writing ACD-database
  762.              12  :   ACD_color specification is incorrect
  763.              13  :   Unable to rename directory
  764.              14  :   File to be renamed is NOT a directory; not renamed.
  765.              15  :   Directories must have equal parent for rename
  766.              16  :   Not enough memory
  767.  
  768.    The resulting error message can be redirected by adding >NUL to the
  769.    ACD command.
  770.  
  771.  . For the interested user, here is what ACD does when changing to a
  772.    directory:
  773.  
  774.        1.  Try to change directly from current directory to the directory
  775.            specified. If this directory does not exist, go to step 2.
  776.  
  777.        2.  Look for a match of the last part of the directory entry. For
  778.            example, if you specify "ACD sou", then all of the following would
  779.            match:
  780.  
  781.                c:\compiler\c\sources
  782.                d:\database\soup
  783.                f:\acd\source
  784.  
  785.            If more than one match found, display the pop-up window. If none
  786.            found, go to step 3.
  787.  
  788.        3.  At this point, ACD just shrinks the partial string and repeats step
  789.            2, until one or more directories are found.
  790.  
  791.      This last step can be disabled by setting the /s switch to OFF (/s0).
  792.  
  793.  
  794.  
  795. This program is FREE of charge and may be used by anyone who wishes to. So,
  796. also in a commercial/educational environment. However, you are not allowed to
  797. remove the Copyright Statement, or to sell this program, or bundle it with
  798. other (commercial) goods. You may give it to anyone you like, but only in its
  799. original form with the complete documentation.
  800.  
  801. If you have any (positive/negative) comments or suggestions, I would like to
  802. hear from you.
  803.  
  804. Furthermore, I will not be held liable for any misfortune that may or may not
  805. happen to you, which may or may not be the result of using or not using this
  806. program. In other words, the usual disclaimer applies here.
  807.  
  808.  
  809.                                      Arjen Merckens
  810.                                      Gandhilaan 35
  811.                                      1069 NC  Amsterdam
  812.                                      The Netherlands
  813.                                      Internet: AMBASE@RUG.NL
  814.                                      BBS: Gaasper RBBS +31 20 6978493/6913890
  815.  
  816. Acknowledgments:
  817.  
  818. David E. Jenkins (DAVE.JENKINS@OFFICE.WANG.COM) has given me numerous useful
  819. suggestions, like the scrollback history function, and both he and Jurgen A.
  820. Doornik (ECONZ@VAX.OX.AC.UK), author of PATCH22 and HPP, tested and commented
  821. the Beta-release of ACD version 1.10.
  822. Duncan Murdoch (DMURDOCH@MATH.CARLETON.CA) has given me numerous useful
  823. suggestions and tested the Beta-release of ACD version 2.00.
  824.  
  825. Many improvements are also due to suggestions of users like you. Without this
  826. feedback ACD would never have evolved to what it is now. Thanks for your
  827. feedback!
  828.  
  829.  
  830. Plans for a future release:
  831.  
  832.   - remove all files from directory before removing directory; possibly
  833.     recursively. [probably NOT, can be handled by installing an external
  834.     command]
  835.  
  836.   - Graft and Prune..... [maybe, on the long term...]
  837.  
  838.  
  839. Other software donated to the public domain:
  840.  
  841. amSpell - Checks and automatically corrects your ASCII or TeX text files.
  842.           Offers alternatives for unknown words and can learn new words.
  843.           Tools for creating/editing dictionaries are included.
  844.           Current version AMSPEL20.ZIP - date August 1, 1992
  845.  
  846. Revision History:
  847.  
  848. version 2.10, Aug. 1, 1992
  849.   - added a configuration program for ACD; the patch-files (*.P22) are now
  850.     obsolete, but included for completeness.
  851.   - the switches can be set without toggling, by adding a digit; 0 means OFF,
  852.     1 means ON. E.g. the /c toggle can be set to be ON by /c1, independent of
  853.     the previous value. The toggle method still works however.
  854.   - added ACD /[q]recreate, which re-creates the ACD database based on all
  855.     drives mentioned in the ACD database.
  856.   - scanning from the pop-up window now ensures that the information of
  857.     unknown directories is removed from the ACD database.
  858.   - speeded up scanning from popup-window.
  859.   - changed "add unknown directories" option: specifying /u[x], or the /u
  860.     switch x times, with x=
  861.       0: (/u0) do not add unknown directories to ACD database
  862.       1: (/u1) add when parent is in the ACD database
  863.       2: (/u2) add when parent is in the ACD database, and add also all
  864.          subdirectories.
  865.       3: (/u3) if parent is NOT in the ACD database, go back until parent is
  866.          in ACD database; scan for directories starting from this directory.
  867.       4: (/u4) rescan complete drive (if this drive is in the ACD database)
  868.  
  869.   - ACD now recognizes substituted drives (using SUBST or ASSIGN) and network
  870.     drives. If D: is a substed drive of C:\PROGS, you now no longer need to
  871.     scan D:, as ACD will use the information of the C: drive (in particular
  872.     C:\PROGS). Even if you create, rename or remove directories using the
  873.     substituted drive, the ACD.IDX file will be properly updated. ACD will
  874.     only show the information on the substituted drives if you explicitly give
  875.     the drive on the commandline, or use the /c option.
  876.     Because ACD now recognizes these substitutions, ACD /create (or /add, etc)
  877.     will not scan the directories of substed or assigned drives, nor will it
  878.     scan double network drive information, unless explicitly specified on the
  879.     commandline.
  880.   - Added possibility to call an External program using ALT-E, for example
  881.     COMMAND.COM, DF.com or 4FILES.com; see patches on how to proceed.
  882.   - Changed errorlevel-codes on a special request of the author of 4FILES.
  883.   - Because a dash could also be a switch character (undocumented), changing
  884.     to directories containing a dash did not work properly. Fixed.
  885.   - ACD == and ACD =<number> would not work when /s option was specified.
  886.     Fixed.
  887.   - ACD <drive> now follows the /0 switch applied to this drive, instead of
  888.     changing to the root directory of <drive>.
  889.  
  890. version 2.01, Jan. 12, 1992
  891.   - changed ALT-S function to allow for recursive scan.
  892.   - added ACD == for toggling to previous directory.
  893.   - added ACD =<number> for jumping to previous <number> directory.
  894.   - added /e - Exact match toggle: switch to directory if exactly one
  895.     directory name is found in the ACD database with this exact name.
  896.   - added /s - Shrink speedstring toggle: ACD does not try to guess what is
  897.                meant if no match: step 3. in the appendix is skipped.
  898.   - added ALT-P for Printing tree to file/prn when in pop-up window.
  899.   - fixed bug which made displaying tree slow in some cases.
  900.   - changed cursor-left to be more logical.
  901.   - added SHIFT cursor up, SHIFT cursor down.
  902.  
  903. version 2.00, Nov. 21, 1991
  904.   - added menu (and corresponding /m option) for even faster selection of
  905.     directories in the pop-up window.
  906.   - possibility to specify default options in the environment variable ACD.
  907.   - added ALT-M for Making new directories when in pop-up window.
  908.   - added ALT-N for reNaming directories when in pop-up window.
  909.   - added ALT-R for Removing directories (locally) when in pop-up window.
  910.   - added ALT-L for toggling method of highlighting current selection.
  911.   - added /l option for toggling method of highlighting current selection.
  912.   - added ? as wildcard, like in DOS.
  913.   - previously, the videomode was automatically reset to textmode 3 (if
  914.     unequal to 0/1/2/3/7; due to TurboPascal 6.0), now the current videomode
  915.     is kept. The maximumsize of the pop-up window is dependent on the
  916.     row-maximum of the videomode. Note however that ACD is unable to correctly
  917.     display the pop-up window when a graphics mode is used.
  918.   - fixed problem due to any graphics program using HERC.BGI under Desqview.
  919.   - added Ctrl Arrow-Left for going to parent of currently highlighted path.
  920.   - added Arrow-Right/Arrow-Left to equal function of TAB/BACKTAB.
  921.   - added = for toggling scrollback history function in pop-up window.
  922.   - scrollback history function can also be called by ACD = instead of ACD ! .
  923.   - added ALT-T for displaying highlighted path on top of screen.
  924.   - added ALT-G for toggling "graphic" display.
  925.   - added "graphic" for displaying paths; see also new /g option.
  926.   - added /u and /0 options, so patches are not necessary when using ACD in an
  927.     alias; when /0 is specified twice, then the scrollback history will be
  928.     used.
  929.  
  930. version 1.14, Oct. 20, 1991
  931.   - fixed bug caused by too fast implementation of the /c option: ACD could
  932.     not recognize /create.
  933.   - added help from the pop-up window.
  934.   - /c and /i really toggle: when specified more than once, the toggling
  935.     on/off continues. Ideal for making /c the default in an alias.
  936.   - fixed small bug concerning HOME-key.
  937.  
  938. version 1.13, Oct. 15, 1991
  939.   - added /c option to use current drive for switching.
  940.   - added action of the : key when in pop-up window; all drives are selected.
  941.  
  942. version 1.12, Oct. 12, 1991
  943.   - added /i option to ignore unlogged drives; a patch can make this the
  944.     default. Saves (some) time.
  945.   - renames directories perfectly under NOVELL (NCD can't; LCD partly).
  946.  
  947. version 1.11, Oct. 6, 1991
  948.   - automatically adds newly unknown subdirectories with known parents; a
  949.     patch can disable this automatic function.
  950.   - fixed some bugs resulting in a corrupted ACD.IDX.
  951.  
  952. version 1.10, Oct. 1, 1991
  953.   - added \-function to display all subdirectories of partial match selection.
  954.   - added scrollback history function; a function to remember and pop-up the
  955.     last "historysize" (default: 20) directory-names (acd !).
  956.   - hidden directories are now also scanned.
  957.   - added ALT-C : center choice.
  958.   - added BackTab-function for selecting previous directory with same parent.
  959.  
  960. version 1.03, Sept. 14, 1991
  961.   - added possibility to patch function of calling ACD without parameters.
  962.   - if adding information with /[q]add that already exists in the information
  963.     database, the redundant information is removed. The replaced/added drive
  964.     information is put at the end of the database.
  965.   - position the highlight on the current directory if it is included in the
  966.     partial match set being displayed (sort of like "you are here").
  967.   - when drives do not exist anymore, for example when the network is not
  968.     loaded, the directories of these invalid drives are excluded from the
  969.     partial match list.
  970.   - fixed bugs:
  971.   . when removing a directory which had in the ACD database still some
  972.     subdirectories, the ACD database would get corrupted.
  973.   . when creating a new directory in the root, the ACD database would
  974.     get corrupted.
  975.  
  976. version 1.02, Sept. 7, 1991
  977.   - changed REN function to work as in (4)DOS. Example:
  978.        ACD ren d:\bin\dos olddos
  979.     now renames d:\bin\dos in d:\bin\olddos in stead of giving an error
  980.     message. However, if you enter ACD ren d:\bin\dos d:\olddos, you'll still
  981.     get an error message and ERRORLEVEL 15 will be set.
  982.   - Some minor code changes.
  983.  
  984. version 1.01, Aug. 8, 1991
  985.   - added TAB-function for selecting next directory with same parent.
  986.   - some minor bugs fixed:
  987.   . in some instances when creating a directory, the sort order was not kept.
  988.   . when a subdirectory was created which had the same name as a `sibling' of
  989.     the parent, the ACD-database would not be updated.
  990.  
  991. version 1.0 , Aug. 7, 1991
  992.   - first public release.
  993.  
  994.